package com.pattern.create.factoryMethod.three;
import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;  
  
/**   
*    
* 项目名称：designPattern   
* 类名称：XMLUtil   
* 类描述：工具类XMLUtil.java  
* 创建人：jzhang  
* 创建时间：2018年4月23日 上午10:49:03   
* 联系方式：1104975916@qq.com 
*      
*/
public class XMLUtil {  
//该方法用于从XML配置文件中提取具体类类名，并返回一个实例对象  
    public static Object getBean() {  
        try {  
            //创建DOM文档对象  
            DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();  
            DocumentBuilder builder = dFactory.newDocumentBuilder();  
            Document doc;                             
            doc = builder.parse(new File("src/com/pattern/create/factoryMethod/three/config.xml"));   
          
            //获取包含类名的文本节点  
            NodeList nl = doc.getElementsByTagName("className");  
            Node classNode = nl.item(0).getFirstChild();  
            String cName = classNode.getNodeValue();  
              
            //通过类名生成实例对象并将其返回  
            Class<?> c = Class.forName(cName);
            Object obj = c.newInstance();  
            return obj;  
        }     
        catch(Exception e) {  
            e.printStackTrace();  
            return null;  
         }  
    }  
}  